customizações ggplot2

Aula 17, M3

Carolina Musso

Sala de Situação - UnB

Esta semana

Aula 16 - A gramática dos gráficos

Reintrodução ao ggplot e tipos de gráficos

Aula 17 - Customizações

Paleta de cores, temas, e outras firulas

Leituras para aprofundamento

Leituras para aprofundamento

Já vimos: Labs

ggplot(linelist, aes(x = age, y = wt_kg))+
  geom_point() +
  labs(
    title = "Relação de peso e idade",
    subtitle = "Em pacientes com Ebola",
    caption = paste(
      "Fonte: Dados Simulados",
      "EpiR_handbook"),
    x = "Idade (anos)", y = "Peso (kg)"
  )

Temas

ggplot(linelist, aes(x = age, y = wt_kg))+
  geom_point()

ggplot(linelist, aes(x = age, y = wt_kg))+
  geom_point() +
  theme_minimal()

ggplot(linelist, aes(x = age, y = wt_kg))+
  geom_point() +
  theme_bw(base_size=20)

ggplot(linelist, aes(x = age, y = wt_kg))+
  geom_point() +
  theme_classic(base_family="Times New Roman")

ggplot(linelist, aes(x = age, y = wt_kg))+
  geom_point() +
  theme_void()

ggthemes

pacman::p_load(ggthemes)

ggplot(linelist, aes(x = age, y = wt_kg))+
  geom_point() +
  theme_economist()

pacman::p_load(ggthemes)

ggplot(linelist, aes(x = age, y = wt_kg))+
  geom_point() +
  theme_solarized()

pacman::p_load(ggthemes)

ggplot(linelist, aes(x = age, y = wt_kg))+
  geom_point( )+
  theme_excel()

Fazer o próprio tema

ggplot(linelist, aes(x = age, y = wt_kg, color=gender))+
  geom_point() +
  theme(
    plot.title = element_text(hjust = 0.5),
    plot.subtitle = element_text(hjust = 0.5),
    axis.title = element_text(color = "purple"),
    panel.background = element_rect(fill = "black"),
    panel.grid = element_blank()
  )

  • faça ?theme e veja quantos parâmetros essa função tem!

Cores

  • scale_color_?()

  • scale_fill_?()

  • scale_color_brewer()

  • scale_color_continuous()

  • scale_color_discrete()

  • scale_color_manual()

Editar algumas coisas

ggplot(linelist, aes(x = age, y = wt_kg, color=gender))+
  geom_point() +
  scale_color_discrete(name="Sexo",
                       labels = c('Feminino', 'Masculino'))

ggplot(linelist, aes(x = age, y = wt_kg, color=gender))+
  geom_point() +
  scale_color_manual(name="Sexo",
                       labels = c('Feminino', 'Masculino'),
                     values=c("orange", "purple"))

Paleta manual

ggplot(linelist, aes(x = age, y = wt_kg, color=gender))+
  geom_point() +
  scale_color_manual(values=c("aquamarine", "deeppink1"))

ggplot(linelist, aes(x = age_cat, y = wt_kg, fill=gender))+
  geom_boxplot() +
  scale_fill_manual(values=c("aquamarine", "deeppink1"))

ggplot(linelist, aes(x = age, y = wt_kg, color=gender))+
  geom_point() +
  scale_color_manual(values=c("#81968F", "#E9D6EC"))

colorspace::hcl_color_picker()

scale_*_brewer()

ggplot(linelist, aes(x = age, y = wt_kg, color=hospital))+
  geom_point() +
  scale_color_brewer(type="seq")

ggplot(linelist, aes(x = age, y = wt_kg, color=hospital))+
  geom_point() +
  scale_color_brewer(type="div")

ggplot(linelist, aes(x = age, y = wt_kg, color=hospital))+
  geom_point() +
  scale_color_brewer(type="qual")

Paletas

  • Escalas qualitativas: utilizado para variáveis nominais (sexo, cor/raça)

  • Escalas divergentes: utilizado para variáveis que têm um centro neutro (favorável/neutro/desfavorável, correlação)

  • Escalas sequenciais: utilizado para variáveis ordinais (faixa etária, renda)

  • Color Brewer

  • Busque ?scale_color_brewer()

    • veja todas as opções
  • Número da paleta
ggplot(linelist, aes(x = age, y = wt_kg, color=hospital))+
  geom_point() +
  scale_color_brewer(type="div",palette = 1 )

  • Nome da paleta
ggplot(linelist, aes(x = age, y = wt_kg, color=ht_cm))+
  geom_point() +
  scale_color_distiller(type="seq", palette = "Greens")

Brewer, Distiler …

  • scale_*_brewer(): utilizada para variáveis discretas. Possui três tipos: divergente, qualitativa e sequencial.

  • scale_*_distiller(): utilizada para variáveis contínuas. Interpola as cores do brewer para lidar com todos os valores.

  • scale_*_fermenter(): utilizada para variáveis contínuas, que são transformadas em discretas (binned).

  • scale_*viridis[cdb]: Escala viridis para variáveis contínuas, discretas ou binned.

  • scale_*_manual(): inclui um conjunto de cores manualmente.

  • {ggthemr} tem um monte de paletas, mas está um pouco desatualizado.

  • {hrbrthemes} contém uma lista de temas escolhidos pelo Bob Rudis.

  • {ghibli} tem paletas de cores relacionadas ao Studio Ghibli

  • {paletteer} tem uma coleção de cores de vários outros pacotes de paletas.

Extra: Label

linelist %>% 
  group_by(age_cat) %>% 
  count() %>% 
ggplot(aes(x=age_cat))+
  geom_col(aes( y=n), color="black")+
  geom_label(aes(y=n/2, label = n)) +
  coord_flip()

Obrigada!